package com.es.gateway.sdk.app.rpverify_h5_ext;

import com.es.gateway.sdk.util.GsonUtil;
import lombok.Data;

@Data
public class RPVerifyH5ExtGetResultResponse {
    /**
     * 业务ID，和初始化传入的一致
     */
    private String bizId;
    /**
     * 业务ID
     */
    private String businessId;
    /**
     * 请求ID(用于查日志)
     */
    private String requestId;
    /**
     * 错误码
     */
    private String code;
    /**
     * 结果描述
     */
    private String msg;
    /**
     * 人像置信度（区间：0-1000）阈值参考如下：
         错误接受率1%，阈值比对分数500
         错误接受率0.1%，阈值比对分数600
         错误接受率0.01%，阈值比对分数700
         错误接受率0.001%，阈值比对分数800
         错误接受率0.0001%，阈值比对分数900
         推荐阈值比对分数700以上
     */
    private String confidence;
    /**
     * 认证结果：T：实人成功；F：实人失败
     */
    private String pass;
    /**
     * 实人结果码：
     */
    private String resultCode;
    /**
     * 结果描述
     */
    private String resultMsg;
    /**
     * 活体类型：0: 混合版 1：静默活体；2：读数活体
     */
    private String type;
    /**
     * 姓名
     */
    private String certName;
    /**
     * 认证身份证号
     */
    private String certNo;
    /**
     * 活体组合（静默活体时生效） 1：远近，3：摇头，4: 点头
     */
    private String livingType;
    /**
     * 活体检测视频地址(有效时间为30分钟)
     */
    private String videoUrl;
    /**
     * 活体检测最清晰的一张照片下载地址，有效期，30分钟
     */
    private String imgUrl;
    /**
     *
     * 人脸遮挡检测结果：
     *     Y：无遮挡
     *     N：遮挡
     */
    private String occlusionResult;
    /**
     * 遮挡检测分数
     */
    private String occlusionConfidence;
    /**
     *名族，ocr模式才有值
     */
    private String nationality;

    /**
     * 住址, ocr 模式才有值
     */
    private String address;

    /**
     *
     * 身份证签发机构, ocr 模式才有值
     */
    private String issuedBy;

    /**
     *  有效期(如2010.11.13-2020.11.13), ocr 模式才有值
     */
    private String validDate;

    /**
     * 身份证正面照片(国徽面)下载URL, 24 小时有效
     */
    private String idFront;

    /**
     * 身份证反面(人像面)照片下载URL, 24 小时有效
     */
    private String idBack;

    public String toJsonStr() {
        return GsonUtil.getAllJson().toJson(this);
    }

    public static RPVerifyH5ExtGetResultResponse fromJsonStr(String jsonStr) {
        return GsonUtil.getAllJson().fromJson(jsonStr, RPVerifyH5ExtGetResultResponse.class);
    }
}
